<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 提取形参  ->  形参本质就是变量  ->  变量存数据  
        //    function 代码块     array []       object {}


        // function ff(n , m) {
        //     if(n % 2) {
        //         console.log(n + '是奇数');
        //     }

        //     // console.log('我真棒');
        //     // console.log('666');
        //     console.log(m);
        // }


        // ff(5 , '我真棒')


        // function ff(n , f) {
        //     if(n % 2) {
        //         console.log(n + '是奇数');
        //     }

        //     // console.log('我真棒');
        //     // alert('我真棒');
        //     f() ;
        // }


        // ff(5 , function() {
        //     console.log('666');
        // })




        function ff(n , f) {
            if(n % 2) {
                console.log(n + '是奇数');
            }

            // console.log('我真棒');
            // alert('我真棒');
            f('我真棒') ;
        }


        ff(5 , function(v) {
            console.log(v);
        })





        function myForEach(arr , f ) {
            for(var i = 0 ; i < arr.length ; i++) {
                // console.log(arr[i]);
                // alert(arr[i]) ;
                f(arr[i] , i)
            }
        }





        myForEach([1,2,3] , function(m , n) {
            console.log(m);
            console.log(n);
        })




        // myMap   改变数组中的值，返回新的数组

        function myMap(arr , f) {
            var arr2 = [] ;
            for(var i = 0 ; i < arr.length ; i++) {
                // var res = arr[i] * 2 ;
                // var res = arr[i] + 2 ;
                var res = f(arr[i]) ;   // 此函数一定会有返回值
                arr2.push(res) ;
            }

            return arr2 ;
        }



        var res = myMap([1,2,3] , function(v) {
            return v * 4 ;
        })
        console.log(res);







    </script>
    
</body>
</html>